package com.cencat.merchant.vo;

import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 路线发票视图对象
 * @author cencat
 * @since 2025-01-20
 */
@Data
public class RouteInvoiceVO {

    /**
     * 发票ID
     */
    private Long id;

    /**
     * 租户ID
     */
    private Long tenantId;

    /**
     * 路线ID
     */
    private Long routeId;

    /**
     * 路线名称
     */
    private String routeName;

    /**
     * 路线编码
     */
    private String routeCode;

    /**
     * 商家ID
     */
    private Long merchantId;

    /**
     * 商家名称
     */
    private String merchantName;

    /**
     * 发票编号
     */
    private String invoiceNo;

    /**
     * 发票类型
     */
    private String invoiceType;

    /**
     * 发票类型名称
     */
    private String invoiceTypeName;

    /**
     * 发票金额
     */
    private BigDecimal invoiceAmount;

    /**
     * 税率
     */
    private BigDecimal taxRate;

    /**
     * 税额
     */
    private BigDecimal taxAmount;

    /**
     * 发票状态
     */
    private String status;

    /**
     * 发票状态名称
     */
    private String statusName;

    /**
     * 审核状态
     */
    private String auditStatus;

    /**
     * 审核状态名称
     */
    private String auditStatusName;

    /**
     * 认证状态
     */
    private String certifyStatus;

    /**
     * 认证状态名称
     */
    private String certifyStatusName;

    /**
     * 开具时间
     */
    private LocalDateTime issueTime;

    /**
     * 开具人
     */
    private String issueUser;

    /**
     * 作废时间
     */
    private LocalDateTime voidTime;

    /**
     * 作废人
     */
    private String voidUser;

    /**
     * 作废原因
     */
    private String voidReason;

    /**
     * 红冲时间
     */
    private LocalDateTime redRushTime;

    /**
     * 红冲人
     */
    private String redRushUser;

    /**
     * 红冲原因
     */
    private String redRushReason;

    /**
     * 审核时间
     */
    private LocalDateTime auditTime;

    /**
     * 审核人
     */
    private String auditUser;

    /**
     * 审核备注
     */
    private String auditRemark;

    /**
     * 认证时间
     */
    private LocalDateTime certifyTime;

    /**
     * 认证人
     */
    private String certifyUser;

    /**
     * 发票抬头
     */
    private String invoiceTitle;

    /**
     * 纳税人识别号
     */
    private String taxpayerId;

    /**
     * 开户行
     */
    private String bankName;

    /**
     * 银行账号
     */
    private String bankAccount;

    /**
     * 地址电话
     */
    private String addressPhone;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建人ID
     */
    private Long createBy;

    /**
     * 创建人姓名
     */
    private String createByName;

    /**
     * 更新人ID
     */
    private Long updateBy;

    /**
     * 更新人姓名
     */
    private String updateByName;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}